面试知识库
极高 基础

AI Agent核心概念与架构#

一句话答案#

AI Agent 是”以 LLM 为大脑、能自主决定下一步做什么并通过工具与环境交互”的系统:LLM 负责规划与决策,工具负责行动,记忆负责跨步骤/跨会话保持状态。它与普通 LLM 调用的本质区别是控制流由模型在运行时动态决定,而不是由代码预先写死(那是 Workflow);代价是不确定性、延迟与成本上升,所以”能用 Workflow 就别上 Agent”。

核心要点

1. 什么是 Agent:LLM + 工具 + 记忆 + 规划#

单次 LLM 调用是”文本进、文本出”的纯函数;Agent 则把 LLM 放进一个循环里,让它根据当前观察决定下一步:调用哪个工具、要不要再查一次、还是可以给出最终答案。四要素各司其职:

要素作用对应深挖
感知 Perception接收用户输入、工具返回、环境状态,组装进上下文Agent记忆与上下文工程
规划 Planning任务分解、选择下一步、对结果反思并修正Agent设计模式、Reflection与自我修正模式
行动 Action通过 Function Calling / MCP 调用外部工具或 API[Function Calling与工具编排](/topics/ai-agent/Function Calling与工具编排)、MCP协议原理
记忆 Memory短期(本次对话/工作记忆)+ 长期(跨会话偏好与知识)Agent记忆与上下文工程

2. 从 Chatbot 到 Agent 的光谱:关键分水岭是”谁决定控制流”#

Chatbot          LLM + RAG           Workflow                       Agent
单轮/多轮对话  →  先检索再生成     →  代码预定义流程,LLM 只在节点内填空  →  LLM 在运行时决定调什么工具、走哪条路、何时停
确定性 ───────────────────────────────────────────────────────► 自主性/不确定性
plaintext

Anthropic 在 Building effective agents(2024-12)中把后两者明确区分:Workflow 是 LLM 和工具沿预先写好的代码路径编排,Agent 是 LLM 自己动态指挥流程与工具使用。常见 Workflow 模式只需点名即可:Prompt Chaining(串行分步)、Routing(分类后分发)、Parallelization(并行分片/投票)、Orchestrator-Workers(中心拆任务、动态派发)、Evaluator-Optimizer(生成-评估循环)。它们的共同点是”分支和循环次数由代码掌控”,一旦把”下一步做什么”交给模型,就跨过了 Agent 的门槛。

3. Agent loop 的最小实现#

def run_agent(user_input, tools, max_steps=10):
    messages = [system_prompt, user(user_input)]
    for step in range(max_steps):
        resp = llm.chat(messages, tools=tools)       # 1. LLM 决策
        if resp.tool_calls:                           # 2. 要调工具
            messages.append(resp)                     #    记录决策本身
            for call in resp.tool_calls:
                result = execute(call)                #    执行(注意超时/权限)
                messages.append(tool_result(call.id, result))  # 3. 观察追加进上下文
            continue                                  # 4. 带着新观察再决策
        return resp.content                           # 5. 没有工具调用 = 完成,输出
    return fallback("超出步数上限,请人工介入")     # 6. max_steps 终止
python

循环体就是 决策 → 行动 → 观察 三拍(即 ReAct 的 Thought/Action/Observation,机制细节见 Agent设计模式)。生产中在此基础上加:max_steps / token 预算 / 重复调用检测三重终止、每步超时、状态快照([Agent Runtime与Checkpoint机制](/topics/ai-agent/Agent Runtime与Checkpoint机制))。

4. 自主性分级与风险#

级别模式举例主要风险
L1 人主导LLM 只建议,人执行代码补全、写作助手低
L2 人在环 HITLAgent 执行,关键动作前需人确认退款需确认、部署前审批审批疲劳导致”盲批”
L3 人在环外监督Agent 自主跑完,人事后审计/抽检批量数据清洗、自动工单错误在事后才发现
L4–L5 全自主长时间无人值守,自行规划与纠错自动化运维、长程研究 Agent误操作放大、成本失控、难解释

自主性越高,对工具权限最小化、沙箱隔离、可观测与回滚的要求越高(见 [Agent安全与Prompt Injection防御](/topics/ai-governance/Agent安全与Prompt Injection防御))。级别不是越高越好,而是按任务的可逆性与错误代价选。

5. 什么时候不该用 Agent#

Agent 的成本是不确定性:同一输入可能走不同路径、延迟与 token 随步数线性增长、出错难复现。以下场景优先 Workflow:

  • 流程确定、可枚举:步骤固定,用 Prompt Chaining / Routing 更快更稳
  • 成本/延迟敏感:高并发客服、实时接口,多一轮 LLM 决策就是多几百毫秒和一份账单
  • 可解释性/合规要求高:金融、医疗要能说清”为什么走这步”,代码路径比模型临场判断可审计
  • 任务只是”查资料再回答”:RAG 就够,不需要动态规划

反过来,下一步依赖中间结果、步骤无法预知(如”先看 schema 再写 SQL 再按报错改”)才是 Agent 的主场。单 Agent 扛不住(工具过多、角色冲突)再考虑多 Agent,见 多Agent协作架构;完整决策树与七层设计法见 [AI Agent系统设计方法论](/topics/ai-agent/AI Agent系统设计方法论);框架对比见 [AI Agent技术趋势与框架选型](/topics/ai-agent/AI Agent技术趋势与框架选型)。

面试回答(2分钟版)

AI Agent 简单说就是以 LLM 为大脑、能自己决定下一步做什么并通过工具和环境交互的系统。我一般从四个要素讲:感知负责接收输入和工具返回,规划负责任务分解和反思,行动通过 Function Calling 或 MCP 调用工具,记忆分短期工作记忆和长期跨会话记忆。它和普通 LLM 调用的本质区别是控制流在谁手里——普通调用或 RAG 是文本进文本出,流程由代码写死;Workflow 虽然也用 LLM 和工具,但分支、循环由代码预定义,LLM 只在节点里填空,比如 Prompt Chaining、Routing、并行、Orchestrator-Workers、Evaluator-Optimizer 这些模式;而 Agent 是 LLM 在运行时自己决定调哪个工具、走哪条路、什么时候停。最小实现就是一个循环:LLM 决策,如果返回工具调用就执行并把结果追加到消息里继续下一轮,没有工具调用就输出答案,再加 max_steps 上限防死循环。第二,Agent 有自主性分级,从人主导、人在环审批、人在环外监督到全自主,级别越高越要做权限最小化、沙箱、可观测和回滚。第三,选型上我的原则是能用 Workflow 就别上 Agent:流程确定可枚举、成本延迟敏感、可解释性要求高的场景用 Workflow 更快更可控;只有下一步要依赖中间结果、步骤无法预知的任务才值得用 Agent,单 Agent 撑不住再拆多 Agent。

追问与易错

追问方向:

  • Agent 和普通 LLM 调用有什么区别? → 普通调用是单次”文本进文本出”的纯函数;Agent 把 LLM 放进循环,模型可以调用工具、观察结果、再决策,直到完成或触发 max_steps。区别不在有没有用工具,而在”下一步做什么”由模型在运行时决定
  • Agent 和 Workflow 怎么选? → 看控制流是否需要动态决定:步骤固定可枚举(分类→检索→生成)用 Workflow,更快、可测、可解释;下一步依赖中间结果(看报错改 SQL、按搜索结果决定再搜什么)才用 Agent。Anthropic 的建议是从最简单方案开始,只在确有收益时增加复杂度
  • RAG 算不算 Agent? → 经典 RAG 是固定的”检索→生成”流水线,属于 Workflow;只有当 LLM 自主决定是否检索、检索几次、改写查询、判断证据够不够时才成为 Agentic RAG,见 [Agentic RAG与高级检索](/topics/rag/Agentic RAG与高级检索)
  • Agent loop 怎么防止不停止? → 三重终止:max_steps(通常 5–15)、token/费用预算、连续相同工具调用检测;加上每步超时与超出后的降级话术或转人工

易错点:

  • ❌ “用了工具调用就是 Agent” → 代码写死的”调一次搜索再生成”仍是 Workflow;Agent 的标志是模型动态决定控制流
  • ❌ “Agent 比 Workflow 更先进,能用就用” → Agent 的代价是不确定性、延迟与成本;确定性流程用 Workflow 反而更专业
  • ❌ “Agent = ReAct 循环” → ReAct 只是最常见的规划范式之一,还有 Plan-and-Execute、Reflection 等;且 Agent 还包含记忆、工具、权限、可观测等工程面